package com.martin.dms.factories;

import com.martin.dms.model.Client;

/**
 * Factory service for the Client entity.
 * 
 * @author mtsvetkov
 */
public interface ClientFactory {

    /**
     * Creates a new Client entity. This method expects all mandatory fields.
     * 
     * @param firstName - the first name of the client.
     * @param lastName - the last name of the client.
     * @param username - the username of the client.
     * @param password - the password of the client.
     * @param email - the email of the client.
     * @return a new Client.
     */
    public Client create(String firstName, String lastName, String username, String password, String email);

    /**
     * Creates a new Client entity.
     * 
     * @param firstName - the first name of the client.
     * @param lastName - the last name of the client.
     * @param username - the username of the client.
     * @param password - the password of the client.
     * @param email - the email of the client.
     * @param address - the address of the client (Not mandatory).
     * @param phoneNumber - the phone number of the client (Not mandatory).
     * @return a new Client.
     */
    public Client create(String firstName, String lastName, String username, String password, String email,
            String address, String phoneNumber);
}
